1. Field of the Invention
The present invention generally relates to the field of data processing. More specifically, the present invention relates to non-isomorphic data mapping.
2. Background Information
EXtensible Markup Language or ‘XML’ is rapidly emerging as the de-facto standard for describing data structures to be transmitted between software applications and web services. While most software applications and web services are written in modern programming languages, such as Java or C++, none of these programming languages provide native support for representing and manipulating XML data structures. Consequently, programmers are either forced to develop or adopt external software packages for representing and manipulating XML data structures within the context of their applications and web services, or to attempt to map XML data structures to programming language data structures of their applications and web services or vice versa.
Existing processes for mapping between XML and programming language data structures focus on isomorphic mapping of the data where, although the data may be represented differently (e.g. as objects of a class versus nodes of a tree), the corresponding data structures are nonetheless required to maintain same relative shape. More specifically, in an isomorphic mapping, a one-to-one correspondence between both the elements and the element relationships of the data structures involved in the mapping is required.
FIG. 1 illustrates an example of an isomorphic relationship between data structures corresponding to three applications in accordance with the prior art. With reference to FIG. 1, it can readily be seen that the data structures associated with applications A, B and C, as well as the data structure of the XML message used to communicate between the applications A, B and C, all maintain the same general data shape. That is, for every element (represented by circles) of the data structure associated with application A, there exists a corresponding element in the respective data structures of applications B, and C as well as the data structure of the XML message. In addition, for every relationship (represented by lines) between elements of the data structure associated with application A, there exists a corresponding relationship in the respective data structures of applications B, and C as well as the data structure of the XML message.
This isomorphic relationship between the respective data structures required by prior art mapping solutions results in a tight coupling between the associated applications. In an environment where different people, on different schedules and platforms, build applications for different purposes (i.e. such as the Internet), a change in the code of one application (i.e. changing the shape of one of its data structures) can cause the other applications to break at one or more integration points. Even if the code of the other applications were modified to adapt to the first application's change, the fixes would only be temporary until another application was changed. Moreover, any such adaptive modification made to an application's code would likely require the services of a programmer causing additional costs and delay to be incurred.